<html>

<head>
<title>Reproducible Test Cases</title>
<link href="../../book.css" rel="stylesheet" type="text/css">
</head>

<body>
		<h1>Reproducible Test Cases</h1>
			<table border="0" width="800" cellspacing="0" cellpadding="5">
				<tr>
					<td valign="top" width="800">The key to a high-bandwidth 
					interaction with the support team is the effective 
					communication of the issue you are experiencing. The best 
					way to communicate issues with the tool is through a 
					test case that we can run on our end that demonstrates the 
					problem. Once we can <i>feel your pain</i> we can more 
					easily diagnose and address it.<h2>
					What defines a good test case?</h2>
					<p>There are a few ingredients that make up a good test 
					case. Good test cases are:</p>
					<ul>
						<li><b>Isolated</b> -- the test should be runnable in 
						isolation. Tests that expect the environment to be in a 
						particular state when run violate this premise.</li>
						<li><b>Standalone</b> -- the test should be as 
						stand-alone as possible. Ideally the test should be a 
						single class (or package) that can be imported into a 
						developer's workspace. If necessary, the test might also 
						be parceled up in a new project. </li>
						<li><b>Lean</b> -- the test should be as minimal as 
						possible. This means:<ul>
							<li>it should be as simple as possible and</li>
							<li>it should introduce a minimal set of 
							dependencies (ideally none).</li>
						</ul>
						</li>
					</ul>
					<p>If your test case triggers a specific exception, please 
					include your entire Eclipse &quot;.log&quot; file (found in your 
					&lt;workspace&gt;/.metadata directory) and not just the exception 
					itself as important clues may appear earlier in the log. 
					Also include your complete Eclipse configuration from &quot;Help 
					&gt; About &gt; Installation Details &gt; Configuration&quot;.</p>
					<h2>This goes for Features Too!
					</h2>
					<p>In addition to communicating about bugs, this is also an 
					effective way to communicate about feature ideas too. 
					Feature requests that are fleshed out with reproducible 
					examples are much easier for developers to dig into, assess 
					and estimate. They also provide a good shared language for 
					exchanging ideas.</td>
				</tr>
				</table>
			</body>
</html>
